package com.huahua.api.entity.vo.tablecomparison;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 字符级差异详情类
 *
 * @author Huahua-Ai
 * @date 2025-07-12 22:58:00
 * @description 表示文本中字符级别的差异信息，用于高亮显示具体的字符变化
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CharacterDifference {

    /**
     * 差异类型：INSERT, DELETE, EQUAL
     */
    private DiffType type;

    /**
     * 在原文本中的起始位置
     */
    private Integer startPos1;

    /**
     * 在原文本中的结束位置
     */
    private Integer endPos1;

    /**
     * 在新文本中的起始位置
     */
    private Integer startPos2;

    /**
     * 在新文本中的结束位置
     */
    private Integer endPos2;

    /**
     * 差异内容
     */
    private String content;

    /**
     * 差异类型枚举
     */
    public enum DiffType {
        /**
         * 插入的字符
         */
        INSERT,

        /**
         * 删除的字符
         */
        DELETE,

        /**
         * 相同的字符
         */
        EQUAL
    }
}
